import request from '@/utils/request'
import { integer } from 'mobx-state-tree/dist/internal'
interface ExtraData {
  webShowFlag: number // 是否在web端展示此菜单 1：展示，2：不展示
}

export interface MenuInterface {
  id: string // 主键ID
  label: string // 菜单名称(中文)
  code: string // 菜单名称（英文）
  data: any // 页面资源  页面资源、自定义页面路径
  type: string // 页面类型（1:文件夹 2:页面 3:自定义菜单）
  icon?: string // 菜单图标
  appId: string // 应用ID
  parentId?: string | undefined // 父级ID
  createTime?: string // 创建时间
  updateTime?: string // 更新时间
  delFlag: string // 删除标识（0:未删除 1:已删除）
  createBy?: string // 创建者
  updateBy?: string // 更新者
  remarks?: string // 备注
  sort?: number // 排序
  extra: ExtraData // 额外数据

  fullPath?: string // 全路径
  isCustom: boolean //是否自定义菜单
}

export interface MenuTreeInterface extends MenuInterface {
  children: Array<MenuTreeInterface> // 你可以根据实际情况指定更具体的类型
}

export function getMenuList (params?: any) {
  return request({
    url: '/v1/system-application-web/list',
    method: 'get',
    params
  })
}

export function addMenu (data: MenuInterface) {
  return request({
    url: '/v1/system-application-web/add',
    method: 'post',
    data
  })
}

export function menuDetail (id: string) {
  return request({
    url: `/v1/system-application-web/getById`,
    method: 'get',
    params: {
      id
    }
  })
}

export function updateMenu (data: any) {
  return request({
    url: '/v1/system-application-web/update',
    method: 'post',
    data
  })
}

export function deleteMenu (id: string) {
  return request({
    url: `/v1/system-application-web/delete`,
    method: 'post',
    data: {
      id
    }
  })
}

export function copyMenu (params?: any) {
  return request({
    url: `/v1/system-application-web/copy`,
    method: 'put',
    params
  })
}
